<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <div id="root">
        <form @submit.prevent="submit"> <!--提交时阻止默认的跳转-->
            <!--.trim控制收集数据时去掉前后的空格-->
            账号：<input type="text" v-model.trim="userInfo.account"><br><br>
            密码：<input type="password" v-model="userInfo.password"><br><br>
            <!--.number控制转换为number类型-->
            年龄：<input type="number" v-model.number="userInfo.age"><br><br>
            性别：
            <!--单选框需要配value，否则只能收集布尔值-->
            男<input type="radio" name="sex" value="male" v-model="userInfo.sex"> 
            女<input type="radio" name="sex" value="female" v-model="userInfo.sex">
            <br><br>
            爱好:
            <!--多选框默认收集checked属性，类型为布尔；也需要配value-->
            学习<input type="checkbox" name="hoby" value="study" v-model="userInfo.hobby"> 
            打游戏<input type="checkbox" name="hobby" value="game" v-model="userInfo.hobby"> 
            吃饭<input type="checkbox" name="hobby" value="eat" v-model="userInfo.hobby">
            <br><br>
            所属校区
            <select v-model="userInfo.city">
                <option value="">请选择校区</option>
                <option value="bj">北京</option>
                <option value="sh">上海</option>
                <option value="sz">深圳</option>
                <option value="wh">武汉</option>
            </select>
            <br><br>
            其他信息
            <!--.lazy控制失去焦点时再收集数据-->
            <textarea v-model.lazy="userInfo.other"></textarea><br><br>
            <input type="checkbox" v-model="userInfo.agree">阅读并接受<a href="https://www.bilibili.com">《用户协议》</a>
            <br><br>
            <button>提交</button>
        </form>
    </div>
    <script>
        Vue.config.productionTip = false

        let vm = new Vue({
            el: "#root",
            data: {
                userInfo: {
                    account: '',
                    password: '',
                    age: '',
                    sex: 'male',
                    hobby: [], //复选框需要用数组类型
                    city: 'bj',
                    other: '',
                    agree: false,
                }
            },
            methods: {
                submit(){
                    let jsonData = JSON.stringify(this.userInfo)
                    console.log("表单提交的json数据:")
                    console.log(jsonData)
                }
            },
        })
    </script>
</body>
</html>